{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Cleaning Data\n",
    "\n",
    "## About the data\n",
    "In this notebook, we will using daily temperature data from the [National Centers for Environmental Information (NCEI) API](https://www.ncdc.noaa.gov/cdo-web/webservices/v2). We will use the Global Historical Climatology Network - Daily (GHCND) data set; see the documentation [here](https://www1.ncdc.noaa.gov/pub/data/cdo/documentation/GHCND_documentation.pdf).\n",
    "\n",
    "This data was collected for the LaGuardia Airport station in New York City for October 2018. It contains:\n",
    "- the daily minimum temperature (`TMIN`)\n",
    "- the daily maximum temperature (`TMAX`)\n",
    "- the daily average temperature (`TAVG`)\n",
    "\n",
    "*Note: The NCEI is part of the National Oceanic and Atmospheric Administration (NOAA) and, as you can see from the URL for the API, this resource was created when the NCEI was called the NCDC. Should the URL for this resource change in the future, you can search for the NCEI weather API to find the updated one.*\n",
    "\n",
    "In addition, we will be using S&P 500 stock market data for the S&P 500 and data for bitcoin for 2017 through 2018. Both were obtained using the [`stock_analysis` package](https://github.com/stefmolin/stock-analysis) we will build in [chapter 7](https://github.com/stefmolin/Hands-On-Data-Analysis-with-Pandas/tree/master/ch_07).\n",
    "\n",
    "## Setup\n",
    "We need to import `pandas` and read in our data to get started:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>attributes</th>\n",
       "      <th>datatype</th>\n",
       "      <th>date</th>\n",
       "      <th>station</th>\n",
       "      <th>value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-01T00:00:00</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>21.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-01T00:00:00</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>25.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>2018-10-01T00:00:00</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>18.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-02T00:00:00</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>22.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-02T00:00:00</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  attributes datatype                 date            station  value\n",
       "0      H,,S,     TAVG  2018-10-01T00:00:00  GHCND:USW00014732   21.2\n",
       "1   ,,W,2400     TMAX  2018-10-01T00:00:00  GHCND:USW00014732   25.6\n",
       "2   ,,W,2400     TMIN  2018-10-01T00:00:00  GHCND:USW00014732   18.3\n",
       "3      H,,S,     TAVG  2018-10-02T00:00:00  GHCND:USW00014732   22.7\n",
       "4   ,,W,2400     TMAX  2018-10-02T00:00:00  GHCND:USW00014732   26.1"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "df = pd.read_csv('data/nyc_temperatures.csv')\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Renaming Columns\n",
    "We start out with the following columns:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['attributes', 'datatype', 'date', 'station', 'value'], dtype='object')"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We want to rename the `value` column to indicate it contains the temperature in Celsius and the `attributes` column to say `flags` since each value in the comma-delimited string is a different flag about the data collection. For this task, we use the `rename()` method and pass in a dictionary mapping the column names to their new names. We pass `inplace=True` to change our original dataframe instead of getting a new one back:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.rename(\n",
    "    columns={\n",
    "        'value' : 'temp_C',\n",
    "        'attributes' : 'flags'\n",
    "    }, inplace=True\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Those columns have been successfully renamed:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['flags', 'datatype', 'date', 'station', 'temp_C'], dtype='object')"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also perform string operations on the column names with `rename()`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['FLAGS', 'DATATYPE', 'DATE', 'STATION', 'TEMP_C'], dtype='object')"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.rename(str.upper, axis='columns').columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Type Conversion\n",
    "The `date` column is not currently being stored as a `datetime`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "flags        object\n",
       "datatype     object\n",
       "date         object\n",
       "station      object\n",
       "temp_C      float64\n",
       "dtype: object"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.dtypes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's perform the conversion with `pd.to_datetime()`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "flags               object\n",
       "datatype            object\n",
       "date        datetime64[ns]\n",
       "station             object\n",
       "temp_C             float64\n",
       "dtype: object"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.loc[:,'date'] = pd.to_datetime(df.date)\n",
    "df.dtypes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we get useful information when we use `describe()` on this column:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                      93\n",
       "unique                     31\n",
       "top       2018-10-01 00:00:00\n",
       "freq                        3\n",
       "first     2018-10-01 00:00:00\n",
       "last      2018-10-31 00:00:00\n",
       "Name: date, dtype: object"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.date.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can use `tz_localize()` on a `DatetimeIndex`/`PeriodIndex` to convert to a desired timezone:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2018-10-25 00:00:00-05:00', '2018-10-26 00:00:00-05:00'], dtype='datetime64[ns, EST]', freq='D')"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.date_range(start='2018-10-25', periods=2, freq='D').tz_localize('EST')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This also works with a `Series`/`DataFrame` with one of the aforementioned as its `Index`. Let's read in the CSV again for this example and set the `date` column to be the index and stored as a datetime:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>attributes</th>\n",
       "      <th>datatype</th>\n",
       "      <th>station</th>\n",
       "      <th>value</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-10-01 00:00:00-05:00</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>21.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-01 00:00:00-05:00</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>25.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-01 00:00:00-05:00</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>18.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-02 00:00:00-05:00</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>22.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-02 00:00:00-05:00</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                          attributes datatype            station  value\n",
       "date                                                                   \n",
       "2018-10-01 00:00:00-05:00      H,,S,     TAVG  GHCND:USW00014732   21.2\n",
       "2018-10-01 00:00:00-05:00   ,,W,2400     TMAX  GHCND:USW00014732   25.6\n",
       "2018-10-01 00:00:00-05:00   ,,W,2400     TMIN  GHCND:USW00014732   18.3\n",
       "2018-10-02 00:00:00-05:00      H,,S,     TAVG  GHCND:USW00014732   22.7\n",
       "2018-10-02 00:00:00-05:00   ,,W,2400     TMAX  GHCND:USW00014732   26.1"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eastern = pd.read_csv(\n",
    "    'data/nyc_temperatures.csv', index_col='date', parse_dates=True\n",
    ").tz_localize('EST')\n",
    "eastern.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can use `tz.convert()` to convert to another timezone from there. If we convert the Eastern datetimes to UTC, they will now be at 5 AM, since `pandas` will use the offsets to convert:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>attributes</th>\n",
       "      <th>datatype</th>\n",
       "      <th>station</th>\n",
       "      <th>value</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-10-01 05:00:00+00:00</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>21.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-01 05:00:00+00:00</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>25.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-01 05:00:00+00:00</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>18.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-02 05:00:00+00:00</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>22.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-02 05:00:00+00:00</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                          attributes datatype            station  value\n",
       "date                                                                   \n",
       "2018-10-01 05:00:00+00:00      H,,S,     TAVG  GHCND:USW00014732   21.2\n",
       "2018-10-01 05:00:00+00:00   ,,W,2400     TMAX  GHCND:USW00014732   25.6\n",
       "2018-10-01 05:00:00+00:00   ,,W,2400     TMIN  GHCND:USW00014732   18.3\n",
       "2018-10-02 05:00:00+00:00      H,,S,     TAVG  GHCND:USW00014732   22.7\n",
       "2018-10-02 05:00:00+00:00   ,,W,2400     TMAX  GHCND:USW00014732   26.1"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eastern.tz_convert('UTC').head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can change the period of the index as well. We could change the period to be monthly to make it easier to aggregate later. (Aggregation will be discussed in [chapter 4](https://github.com/stefmolin/Hands-On-Data-Analysis-with-Pandas/tree/master/ch_04))."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "PeriodIndex(['2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10', '2018-10', '2018-10', '2018-10',\n",
       "             '2018-10', '2018-10', '2018-10'],\n",
       "            dtype='period[M]', name='date', freq='M')"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eastern.to_period('M').index"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We now get a `PeriodIndex` which we can change back into a `DatetimeIndex` with `pd.to_timestamp()`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01', '2018-10-01', '2018-10-01', '2018-10-01',\n",
       "               '2018-10-01'],\n",
       "              dtype='datetime64[ns]', name='date', freq=None)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eastern.to_period('M').to_timestamp().index"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can use the `assign()` method for working with multiple columns at once (or creating new ones). Since our `date` column has already been converted, we need to read in the data again:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "flags               object\n",
       "datatype            object\n",
       "date        datetime64[ns]\n",
       "station             object\n",
       "temp_C             float64\n",
       "temp_F             float64\n",
       "dtype: object"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv('data/nyc_temperatures.csv').rename(\n",
    "    columns={\n",
    "        'value' : 'temp_C',\n",
    "        'attributes' : 'flags'\n",
    "    }\n",
    ")\n",
    "\n",
    "new_df = df.assign(\n",
    "    date=pd.to_datetime(df.date),\n",
    "    temp_F=(df.temp_C * 9/5) + 32\n",
    ")\n",
    "new_df.dtypes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `date` column now has datetimes and the `temp_F` column was added:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>flags</th>\n",
       "      <th>datatype</th>\n",
       "      <th>date</th>\n",
       "      <th>station</th>\n",
       "      <th>temp_C</th>\n",
       "      <th>temp_F</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-01</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>21.2</td>\n",
       "      <td>70.16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-01</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>25.6</td>\n",
       "      <td>78.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>2018-10-01</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>18.3</td>\n",
       "      <td>64.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-02</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>22.7</td>\n",
       "      <td>72.86</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-02</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.1</td>\n",
       "      <td>78.98</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      flags datatype       date            station  temp_C  temp_F\n",
       "0     H,,S,     TAVG 2018-10-01  GHCND:USW00014732    21.2   70.16\n",
       "1  ,,W,2400     TMAX 2018-10-01  GHCND:USW00014732    25.6   78.08\n",
       "2  ,,W,2400     TMIN 2018-10-01  GHCND:USW00014732    18.3   64.94\n",
       "3     H,,S,     TAVG 2018-10-02  GHCND:USW00014732    22.7   72.86\n",
       "4  ,,W,2400     TMAX 2018-10-02  GHCND:USW00014732    26.1   78.98"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also use `astype()` to perform conversions. Let's create columns of the integer portion of the temperatures in Celsius and Fahrenheit:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>flags</th>\n",
       "      <th>datatype</th>\n",
       "      <th>date</th>\n",
       "      <th>station</th>\n",
       "      <th>temp_C</th>\n",
       "      <th>temp_C_whole</th>\n",
       "      <th>temp_F</th>\n",
       "      <th>temp_F_whole</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-01</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>21.2</td>\n",
       "      <td>21</td>\n",
       "      <td>70.16</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-01</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>25.6</td>\n",
       "      <td>25</td>\n",
       "      <td>78.08</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>2018-10-01</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>18.3</td>\n",
       "      <td>18</td>\n",
       "      <td>64.94</td>\n",
       "      <td>64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-02</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>22.7</td>\n",
       "      <td>22</td>\n",
       "      <td>72.86</td>\n",
       "      <td>72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-02</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.1</td>\n",
       "      <td>26</td>\n",
       "      <td>78.98</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      flags datatype       date            station  temp_C  temp_C_whole  \\\n",
       "0     H,,S,     TAVG 2018-10-01  GHCND:USW00014732    21.2            21   \n",
       "1  ,,W,2400     TMAX 2018-10-01  GHCND:USW00014732    25.6            25   \n",
       "2  ,,W,2400     TMIN 2018-10-01  GHCND:USW00014732    18.3            18   \n",
       "3     H,,S,     TAVG 2018-10-02  GHCND:USW00014732    22.7            22   \n",
       "4  ,,W,2400     TMAX 2018-10-02  GHCND:USW00014732    26.1            26   \n",
       "\n",
       "   temp_F  temp_F_whole  \n",
       "0   70.16            70  \n",
       "1   78.08            78  \n",
       "2   64.94            64  \n",
       "3   72.86            72  \n",
       "4   78.98            78  "
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = df.assign(\n",
    "    date=pd.to_datetime(df.date),\n",
    "    temp_C_whole=df.temp_C.astype('int'),\n",
    "    temp_F=(df.temp_C * 9/5) + 32,\n",
    "    temp_F_whole=lambda x: x.temp_F.astype('int')\n",
    ")\n",
    "\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Creating categories:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "flags                   object\n",
       "datatype              category\n",
       "date            datetime64[ns]\n",
       "station               category\n",
       "temp_C                 float64\n",
       "temp_C_whole             int32\n",
       "temp_F                 float64\n",
       "temp_F_whole             int32\n",
       "dtype: object"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_with_categories = df.assign(\n",
    "    station=df.station.astype('category'),\n",
    "    datatype=df.datatype.astype('category')\n",
    ")\n",
    "df_with_categories.dtypes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Our categories have no order, but this is something `pandas` supports:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[med, med, low, high]\n",
       "Categories (3, object): [low < med < high]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.Categorical(\n",
    "    ['med', 'med', 'low', 'high'], \n",
    "    categories=['low', 'med', 'high'],\n",
    "    ordered=True\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reordering, reindexing, and sorting\n",
    "Say we want to find the hottest days in the temperature data; we can sort our values by the `temp_C` column with the largest on top to find this: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>flags</th>\n",
       "      <th>datatype</th>\n",
       "      <th>date</th>\n",
       "      <th>station</th>\n",
       "      <th>temp_C</th>\n",
       "      <th>temp_C_whole</th>\n",
       "      <th>temp_F</th>\n",
       "      <th>temp_F_whole</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-07</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>27.8</td>\n",
       "      <td>27</td>\n",
       "      <td>82.04</td>\n",
       "      <td>82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-10</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>27.8</td>\n",
       "      <td>27</td>\n",
       "      <td>82.04</td>\n",
       "      <td>82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-11</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.7</td>\n",
       "      <td>26</td>\n",
       "      <td>80.06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-02</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.1</td>\n",
       "      <td>26</td>\n",
       "      <td>78.98</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-04</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.1</td>\n",
       "      <td>26</td>\n",
       "      <td>78.98</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-09</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>25.6</td>\n",
       "      <td>25</td>\n",
       "      <td>78.08</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-01</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>25.6</td>\n",
       "      <td>25</td>\n",
       "      <td>78.08</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-03</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>25.0</td>\n",
       "      <td>25</td>\n",
       "      <td>77.00</td>\n",
       "      <td>77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-10</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>23.8</td>\n",
       "      <td>23</td>\n",
       "      <td>74.84</td>\n",
       "      <td>74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-11</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>23.4</td>\n",
       "      <td>23</td>\n",
       "      <td>74.12</td>\n",
       "      <td>74</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       flags datatype       date            station  temp_C  temp_C_whole  \\\n",
       "19  ,,W,2400     TMAX 2018-10-07  GHCND:USW00014732    27.8            27   \n",
       "28  ,,W,2400     TMAX 2018-10-10  GHCND:USW00014732    27.8            27   \n",
       "31  ,,W,2400     TMAX 2018-10-11  GHCND:USW00014732    26.7            26   \n",
       "4   ,,W,2400     TMAX 2018-10-02  GHCND:USW00014732    26.1            26   \n",
       "10  ,,W,2400     TMAX 2018-10-04  GHCND:USW00014732    26.1            26   \n",
       "25  ,,W,2400     TMAX 2018-10-09  GHCND:USW00014732    25.6            25   \n",
       "1   ,,W,2400     TMAX 2018-10-01  GHCND:USW00014732    25.6            25   \n",
       "7   ,,W,2400     TMAX 2018-10-03  GHCND:USW00014732    25.0            25   \n",
       "27     H,,S,     TAVG 2018-10-10  GHCND:USW00014732    23.8            23   \n",
       "30     H,,S,     TAVG 2018-10-11  GHCND:USW00014732    23.4            23   \n",
       "\n",
       "    temp_F  temp_F_whole  \n",
       "19   82.04            82  \n",
       "28   82.04            82  \n",
       "31   80.06            80  \n",
       "4    78.98            78  \n",
       "10   78.98            78  \n",
       "25   78.08            78  \n",
       "1    78.08            78  \n",
       "7    77.00            77  \n",
       "27   74.84            74  \n",
       "30   74.12            74  "
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sort_values(by='temp_C', ascending=False).head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>flags</th>\n",
       "      <th>datatype</th>\n",
       "      <th>date</th>\n",
       "      <th>station</th>\n",
       "      <th>temp_C</th>\n",
       "      <th>temp_C_whole</th>\n",
       "      <th>temp_F</th>\n",
       "      <th>temp_F_whole</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-10</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>27.8</td>\n",
       "      <td>27</td>\n",
       "      <td>82.04</td>\n",
       "      <td>82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-07</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>27.8</td>\n",
       "      <td>27</td>\n",
       "      <td>82.04</td>\n",
       "      <td>82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-11</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.7</td>\n",
       "      <td>26</td>\n",
       "      <td>80.06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-04</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.1</td>\n",
       "      <td>26</td>\n",
       "      <td>78.98</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-02</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.1</td>\n",
       "      <td>26</td>\n",
       "      <td>78.98</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-09</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>25.6</td>\n",
       "      <td>25</td>\n",
       "      <td>78.08</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-01</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>25.6</td>\n",
       "      <td>25</td>\n",
       "      <td>78.08</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-03</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>25.0</td>\n",
       "      <td>25</td>\n",
       "      <td>77.00</td>\n",
       "      <td>77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-10</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>23.8</td>\n",
       "      <td>23</td>\n",
       "      <td>74.84</td>\n",
       "      <td>74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-11</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>23.4</td>\n",
       "      <td>23</td>\n",
       "      <td>74.12</td>\n",
       "      <td>74</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       flags datatype       date            station  temp_C  temp_C_whole  \\\n",
       "28  ,,W,2400     TMAX 2018-10-10  GHCND:USW00014732    27.8            27   \n",
       "19  ,,W,2400     TMAX 2018-10-07  GHCND:USW00014732    27.8            27   \n",
       "31  ,,W,2400     TMAX 2018-10-11  GHCND:USW00014732    26.7            26   \n",
       "10  ,,W,2400     TMAX 2018-10-04  GHCND:USW00014732    26.1            26   \n",
       "4   ,,W,2400     TMAX 2018-10-02  GHCND:USW00014732    26.1            26   \n",
       "25  ,,W,2400     TMAX 2018-10-09  GHCND:USW00014732    25.6            25   \n",
       "1   ,,W,2400     TMAX 2018-10-01  GHCND:USW00014732    25.6            25   \n",
       "7   ,,W,2400     TMAX 2018-10-03  GHCND:USW00014732    25.0            25   \n",
       "27     H,,S,     TAVG 2018-10-10  GHCND:USW00014732    23.8            23   \n",
       "30     H,,S,     TAVG 2018-10-11  GHCND:USW00014732    23.4            23   \n",
       "\n",
       "    temp_F  temp_F_whole  \n",
       "28   82.04            82  \n",
       "19   82.04            82  \n",
       "31   80.06            80  \n",
       "10   78.98            78  \n",
       "4    78.98            78  \n",
       "25   78.08            78  \n",
       "1    78.08            78  \n",
       "7    77.00            77  \n",
       "27   74.84            74  \n",
       "30   74.12            74  "
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sort_values(by=['temp_C', 'date'], ascending=False).head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When just looking for the n-largest values, rather than wanting to sort all the data, we can use `nlargest()`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>flags</th>\n",
       "      <th>datatype</th>\n",
       "      <th>date</th>\n",
       "      <th>station</th>\n",
       "      <th>temp_C</th>\n",
       "      <th>temp_C_whole</th>\n",
       "      <th>temp_F</th>\n",
       "      <th>temp_F_whole</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-07</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>27.8</td>\n",
       "      <td>27</td>\n",
       "      <td>82.04</td>\n",
       "      <td>82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-10</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>27.8</td>\n",
       "      <td>27</td>\n",
       "      <td>82.04</td>\n",
       "      <td>82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-11</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.7</td>\n",
       "      <td>26</td>\n",
       "      <td>80.06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-02</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.1</td>\n",
       "      <td>26</td>\n",
       "      <td>78.98</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-04</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.1</td>\n",
       "      <td>26</td>\n",
       "      <td>78.98</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       flags datatype       date            station  temp_C  temp_C_whole  \\\n",
       "19  ,,W,2400     TMAX 2018-10-07  GHCND:USW00014732    27.8            27   \n",
       "28  ,,W,2400     TMAX 2018-10-10  GHCND:USW00014732    27.8            27   \n",
       "31  ,,W,2400     TMAX 2018-10-11  GHCND:USW00014732    26.7            26   \n",
       "4   ,,W,2400     TMAX 2018-10-02  GHCND:USW00014732    26.1            26   \n",
       "10  ,,W,2400     TMAX 2018-10-04  GHCND:USW00014732    26.1            26   \n",
       "\n",
       "    temp_F  temp_F_whole  \n",
       "19   82.04            82  \n",
       "28   82.04            82  \n",
       "31   80.06            80  \n",
       "4    78.98            78  \n",
       "10   78.98            78  "
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.nlargest(n=5, columns='temp_C')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We use `nsmallest()` for the n-smallest values. Note that these can also take a list of columns; however, it won't work with the `date` column."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>flags</th>\n",
       "      <th>datatype</th>\n",
       "      <th>date</th>\n",
       "      <th>station</th>\n",
       "      <th>temp_C</th>\n",
       "      <th>temp_C_whole</th>\n",
       "      <th>temp_F</th>\n",
       "      <th>temp_F_whole</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>2018-10-18</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>6.7</td>\n",
       "      <td>6</td>\n",
       "      <td>44.06</td>\n",
       "      <td>44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>62</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>2018-10-21</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>6.1</td>\n",
       "      <td>6</td>\n",
       "      <td>42.98</td>\n",
       "      <td>42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>65</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>2018-10-22</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>5.6</td>\n",
       "      <td>5</td>\n",
       "      <td>42.08</td>\n",
       "      <td>42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>74</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>2018-10-25</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>6.1</td>\n",
       "      <td>6</td>\n",
       "      <td>42.98</td>\n",
       "      <td>42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>77</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>2018-10-26</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>5.6</td>\n",
       "      <td>5</td>\n",
       "      <td>42.08</td>\n",
       "      <td>42</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       flags datatype       date            station  temp_C  temp_C_whole  \\\n",
       "53  ,,W,2400     TMIN 2018-10-18  GHCND:USW00014732     6.7             6   \n",
       "62  ,,W,2400     TMIN 2018-10-21  GHCND:USW00014732     6.1             6   \n",
       "65  ,,W,2400     TMIN 2018-10-22  GHCND:USW00014732     5.6             5   \n",
       "74  ,,W,2400     TMIN 2018-10-25  GHCND:USW00014732     6.1             6   \n",
       "77  ,,W,2400     TMIN 2018-10-26  GHCND:USW00014732     5.6             5   \n",
       "\n",
       "    temp_F  temp_F_whole  \n",
       "53   44.06            44  \n",
       "62   42.98            42  \n",
       "65   42.08            42  \n",
       "74   42.98            42  \n",
       "77   42.08            42  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.nsmallest(n=5, columns=['temp_C', 'date'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `sample()` method will give us rows (or columns with `axis=1`) at random. We can provide the `random_state` to make this reproducible. The index after we do this is jumbled:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([2, 30, 55, 16, 13], dtype='int64')"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sample(5, random_state=0).index"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can use `sort_index()` to order it again:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([2, 13, 16, 30, 55], dtype='int64')"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sample(5, random_state=0).sort_index().index"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `sort_index()` method can also sort columns alphabetically:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>datatype</th>\n",
       "      <th>date</th>\n",
       "      <th>flags</th>\n",
       "      <th>station</th>\n",
       "      <th>temp_C</th>\n",
       "      <th>temp_C_whole</th>\n",
       "      <th>temp_F</th>\n",
       "      <th>temp_F_whole</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-01</td>\n",
       "      <td>H,,S,</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>21.2</td>\n",
       "      <td>21</td>\n",
       "      <td>70.16</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-01</td>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>25.6</td>\n",
       "      <td>25</td>\n",
       "      <td>78.08</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>TMIN</td>\n",
       "      <td>2018-10-01</td>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>18.3</td>\n",
       "      <td>18</td>\n",
       "      <td>64.94</td>\n",
       "      <td>64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-02</td>\n",
       "      <td>H,,S,</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>22.7</td>\n",
       "      <td>22</td>\n",
       "      <td>72.86</td>\n",
       "      <td>72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>TMAX</td>\n",
       "      <td>2018-10-02</td>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.1</td>\n",
       "      <td>26</td>\n",
       "      <td>78.98</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  datatype       date     flags            station  temp_C  temp_C_whole  \\\n",
       "0     TAVG 2018-10-01     H,,S,  GHCND:USW00014732    21.2            21   \n",
       "1     TMAX 2018-10-01  ,,W,2400  GHCND:USW00014732    25.6            25   \n",
       "2     TMIN 2018-10-01  ,,W,2400  GHCND:USW00014732    18.3            18   \n",
       "3     TAVG 2018-10-02     H,,S,  GHCND:USW00014732    22.7            22   \n",
       "4     TMAX 2018-10-02  ,,W,2400  GHCND:USW00014732    26.1            26   \n",
       "\n",
       "   temp_F  temp_F_whole  \n",
       "0   70.16            70  \n",
       "1   78.08            78  \n",
       "2   64.94            64  \n",
       "3   72.86            72  \n",
       "4   78.98            78  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sort_index(axis=1).head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This can make selection with `loc` easier for many columns:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>temp_C</th>\n",
       "      <th>temp_C_whole</th>\n",
       "      <th>temp_F</th>\n",
       "      <th>temp_F_whole</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>21.2</td>\n",
       "      <td>21</td>\n",
       "      <td>70.16</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>25.6</td>\n",
       "      <td>25</td>\n",
       "      <td>78.08</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>18.3</td>\n",
       "      <td>18</td>\n",
       "      <td>64.94</td>\n",
       "      <td>64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>22.7</td>\n",
       "      <td>22</td>\n",
       "      <td>72.86</td>\n",
       "      <td>72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>26.1</td>\n",
       "      <td>26</td>\n",
       "      <td>78.98</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   temp_C  temp_C_whole  temp_F  temp_F_whole\n",
       "0    21.2            21   70.16            70\n",
       "1    25.6            25   78.08            78\n",
       "2    18.3            18   64.94            64\n",
       "3    22.7            22   72.86            72\n",
       "4    26.1            26   78.98            78"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sort_index(axis=1).head().loc[:,'temp_C':'temp_F_whole']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We must sort the index to compare two dataframes. If the index is different, but the data is the same, they will be marked not-equal:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.equals(df.sort_values(by='temp_C'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Sorting the index solves this issue:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.equals(df.sort_values(by='temp_C').sort_index())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also use `reset_index()` to get a fresh index and move our current index into a column for safe keeping. This is especially useful if we had data, such as the date, in the index that we don't want to lose:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>flags</th>\n",
       "      <th>datatype</th>\n",
       "      <th>date</th>\n",
       "      <th>station</th>\n",
       "      <th>temp_C</th>\n",
       "      <th>temp_C_whole</th>\n",
       "      <th>temp_F</th>\n",
       "      <th>temp_F_whole</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-01</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>21.2</td>\n",
       "      <td>21</td>\n",
       "      <td>70.16</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-02</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>22.7</td>\n",
       "      <td>22</td>\n",
       "      <td>72.86</td>\n",
       "      <td>72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>6</td>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-03</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>21.8</td>\n",
       "      <td>21</td>\n",
       "      <td>71.24</td>\n",
       "      <td>71</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9</td>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-04</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>21.3</td>\n",
       "      <td>21</td>\n",
       "      <td>70.34</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>12</td>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>2018-10-05</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>20.3</td>\n",
       "      <td>20</td>\n",
       "      <td>68.54</td>\n",
       "      <td>68</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   index  flags datatype       date            station  temp_C  temp_C_whole  \\\n",
       "0      0  H,,S,     TAVG 2018-10-01  GHCND:USW00014732    21.2            21   \n",
       "1      3  H,,S,     TAVG 2018-10-02  GHCND:USW00014732    22.7            22   \n",
       "2      6  H,,S,     TAVG 2018-10-03  GHCND:USW00014732    21.8            21   \n",
       "3      9  H,,S,     TAVG 2018-10-04  GHCND:USW00014732    21.3            21   \n",
       "4     12  H,,S,     TAVG 2018-10-05  GHCND:USW00014732    20.3            20   \n",
       "\n",
       "   temp_F  temp_F_whole  \n",
       "0   70.16            70  \n",
       "1   72.86            72  \n",
       "2   71.24            71  \n",
       "3   70.34            70  \n",
       "4   68.54            68  "
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.datatype == 'TAVG'].head().reset_index()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's set the `date` column as our index:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>flags</th>\n",
       "      <th>datatype</th>\n",
       "      <th>station</th>\n",
       "      <th>temp_C</th>\n",
       "      <th>temp_C_whole</th>\n",
       "      <th>temp_F</th>\n",
       "      <th>temp_F_whole</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-10-01</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>21.2</td>\n",
       "      <td>21</td>\n",
       "      <td>70.16</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-01</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>25.6</td>\n",
       "      <td>25</td>\n",
       "      <td>78.08</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-01</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>18.3</td>\n",
       "      <td>18</td>\n",
       "      <td>64.94</td>\n",
       "      <td>64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-02</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>22.7</td>\n",
       "      <td>22</td>\n",
       "      <td>72.86</td>\n",
       "      <td>72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-02</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.1</td>\n",
       "      <td>26</td>\n",
       "      <td>78.98</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               flags datatype            station  temp_C  temp_C_whole  \\\n",
       "date                                                                     \n",
       "2018-10-01     H,,S,     TAVG  GHCND:USW00014732    21.2            21   \n",
       "2018-10-01  ,,W,2400     TMAX  GHCND:USW00014732    25.6            25   \n",
       "2018-10-01  ,,W,2400     TMIN  GHCND:USW00014732    18.3            18   \n",
       "2018-10-02     H,,S,     TAVG  GHCND:USW00014732    22.7            22   \n",
       "2018-10-02  ,,W,2400     TMAX  GHCND:USW00014732    26.1            26   \n",
       "\n",
       "            temp_F  temp_F_whole  \n",
       "date                              \n",
       "2018-10-01   70.16            70  \n",
       "2018-10-01   78.08            78  \n",
       "2018-10-01   64.94            64  \n",
       "2018-10-02   72.86            72  \n",
       "2018-10-02   78.98            78  "
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.set_index('date', inplace=True)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now that we have a `DatetimeIndex`, we can do datetime slicing. As long as we provide a date format that pandas understands, we can grab the data. To select all of 2018, we simply use `df['2018']`, for the third quarter of 2018 we can use `['2018-Q3']`, grabbing October is as simple as using `df['2018-10']`; these can also be combined to build ranges. Let's grab October 11, 2018 through October 12, 2018 (inclusive of both endpoints):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>flags</th>\n",
       "      <th>datatype</th>\n",
       "      <th>station</th>\n",
       "      <th>temp_C</th>\n",
       "      <th>temp_C_whole</th>\n",
       "      <th>temp_F</th>\n",
       "      <th>temp_F_whole</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-10-11</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>23.4</td>\n",
       "      <td>23</td>\n",
       "      <td>74.12</td>\n",
       "      <td>74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-11</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>26.7</td>\n",
       "      <td>26</td>\n",
       "      <td>80.06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-11</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>21.7</td>\n",
       "      <td>21</td>\n",
       "      <td>71.06</td>\n",
       "      <td>71</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-12</th>\n",
       "      <td>H,,S,</td>\n",
       "      <td>TAVG</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>18.3</td>\n",
       "      <td>18</td>\n",
       "      <td>64.94</td>\n",
       "      <td>64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-12</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>22.2</td>\n",
       "      <td>22</td>\n",
       "      <td>71.96</td>\n",
       "      <td>71</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-10-12</th>\n",
       "      <td>,,W,2400</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>GHCND:USW00014732</td>\n",
       "      <td>12.2</td>\n",
       "      <td>12</td>\n",
       "      <td>53.96</td>\n",
       "      <td>53</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               flags datatype            station  temp_C  temp_C_whole  \\\n",
       "date                                                                     \n",
       "2018-10-11     H,,S,     TAVG  GHCND:USW00014732    23.4            23   \n",
       "2018-10-11  ,,W,2400     TMAX  GHCND:USW00014732    26.7            26   \n",
       "2018-10-11  ,,W,2400     TMIN  GHCND:USW00014732    21.7            21   \n",
       "2018-10-12     H,,S,     TAVG  GHCND:USW00014732    18.3            18   \n",
       "2018-10-12  ,,W,2400     TMAX  GHCND:USW00014732    22.2            22   \n",
       "2018-10-12  ,,W,2400     TMIN  GHCND:USW00014732    12.2            12   \n",
       "\n",
       "            temp_F  temp_F_whole  \n",
       "date                              \n",
       "2018-10-11   74.12            74  \n",
       "2018-10-11   80.06            80  \n",
       "2018-10-11   71.06            71  \n",
       "2018-10-12   64.94            64  \n",
       "2018-10-12   71.96            71  \n",
       "2018-10-12   53.96            53  "
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['2018-10-11':'2018-10-12']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Reindexing allows us to conform our axis to contain a given set of labels. Let's turn to the S&P 500 stock data in the `data/sp500.csv` file to see an example of this. Notice we only have data for trading days (weekdays, excluding holidays):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>open</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>day_of_week</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2017-01-03</th>\n",
       "      <td>2263.879883</td>\n",
       "      <td>2245.129883</td>\n",
       "      <td>2251.570068</td>\n",
       "      <td>2257.830078</td>\n",
       "      <td>3770530000</td>\n",
       "      <td>Tuesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-04</th>\n",
       "      <td>2272.820068</td>\n",
       "      <td>2261.600098</td>\n",
       "      <td>2261.600098</td>\n",
       "      <td>2270.750000</td>\n",
       "      <td>3764890000</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-05</th>\n",
       "      <td>2271.500000</td>\n",
       "      <td>2260.449951</td>\n",
       "      <td>2268.179932</td>\n",
       "      <td>2269.000000</td>\n",
       "      <td>3761820000</td>\n",
       "      <td>Thursday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-06</th>\n",
       "      <td>2282.100098</td>\n",
       "      <td>2264.060059</td>\n",
       "      <td>2271.139893</td>\n",
       "      <td>2276.979980</td>\n",
       "      <td>3339890000</td>\n",
       "      <td>Friday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-09</th>\n",
       "      <td>2275.489990</td>\n",
       "      <td>2268.899902</td>\n",
       "      <td>2273.590088</td>\n",
       "      <td>2268.899902</td>\n",
       "      <td>3217610000</td>\n",
       "      <td>Monday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-10</th>\n",
       "      <td>2279.270020</td>\n",
       "      <td>2265.270020</td>\n",
       "      <td>2269.719971</td>\n",
       "      <td>2268.899902</td>\n",
       "      <td>3638790000</td>\n",
       "      <td>Tuesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-11</th>\n",
       "      <td>2275.320068</td>\n",
       "      <td>2260.830078</td>\n",
       "      <td>2268.600098</td>\n",
       "      <td>2275.320068</td>\n",
       "      <td>3620410000</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-12</th>\n",
       "      <td>2271.780029</td>\n",
       "      <td>2254.250000</td>\n",
       "      <td>2271.139893</td>\n",
       "      <td>2270.439941</td>\n",
       "      <td>3462130000</td>\n",
       "      <td>Thursday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-13</th>\n",
       "      <td>2278.679932</td>\n",
       "      <td>2271.510010</td>\n",
       "      <td>2272.739990</td>\n",
       "      <td>2274.639893</td>\n",
       "      <td>3081270000</td>\n",
       "      <td>Friday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-17</th>\n",
       "      <td>2272.080078</td>\n",
       "      <td>2262.810059</td>\n",
       "      <td>2269.139893</td>\n",
       "      <td>2267.889893</td>\n",
       "      <td>3584990000</td>\n",
       "      <td>Tuesday</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   high          low         open        close      volume  \\\n",
       "date                                                                         \n",
       "2017-01-03  2263.879883  2245.129883  2251.570068  2257.830078  3770530000   \n",
       "2017-01-04  2272.820068  2261.600098  2261.600098  2270.750000  3764890000   \n",
       "2017-01-05  2271.500000  2260.449951  2268.179932  2269.000000  3761820000   \n",
       "2017-01-06  2282.100098  2264.060059  2271.139893  2276.979980  3339890000   \n",
       "2017-01-09  2275.489990  2268.899902  2273.590088  2268.899902  3217610000   \n",
       "2017-01-10  2279.270020  2265.270020  2269.719971  2268.899902  3638790000   \n",
       "2017-01-11  2275.320068  2260.830078  2268.600098  2275.320068  3620410000   \n",
       "2017-01-12  2271.780029  2254.250000  2271.139893  2270.439941  3462130000   \n",
       "2017-01-13  2278.679932  2271.510010  2272.739990  2274.639893  3081270000   \n",
       "2017-01-17  2272.080078  2262.810059  2269.139893  2267.889893  3584990000   \n",
       "\n",
       "           day_of_week  \n",
       "date                    \n",
       "2017-01-03     Tuesday  \n",
       "2017-01-04   Wednesday  \n",
       "2017-01-05    Thursday  \n",
       "2017-01-06      Friday  \n",
       "2017-01-09      Monday  \n",
       "2017-01-10     Tuesday  \n",
       "2017-01-11   Wednesday  \n",
       "2017-01-12    Thursday  \n",
       "2017-01-13      Friday  \n",
       "2017-01-17     Tuesday  "
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sp = pd.read_csv(\n",
    "    'data/sp500.csv', index_col='date', parse_dates=True\n",
    ").drop(columns=['adj_close'])\n",
    "\n",
    "sp.head(10).assign(\n",
    "    day_of_week=lambda x: x.index.day_name()\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If we want to look at the value of a portfolio (group of assets) that trade on different days, we need to handle the mismatch in the index. Bitcoin, for example, trades daily. If we sum up all the data we have for each day (aggregations will be covered in [chapter 4](https://github.com/stefmolin/Hands-On-Data-Analysis-with-Pandas/tree/master/ch_04), so don't fixate on this part), we get the following:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>open</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>day_of_week</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2017-01-01</th>\n",
       "      <td>1003.080000</td>\n",
       "      <td>958.700000</td>\n",
       "      <td>963.660000</td>\n",
       "      <td>998.330000</td>\n",
       "      <td>147775008</td>\n",
       "      <td>Sunday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-02</th>\n",
       "      <td>1031.390000</td>\n",
       "      <td>996.700000</td>\n",
       "      <td>998.620000</td>\n",
       "      <td>1021.750000</td>\n",
       "      <td>222184992</td>\n",
       "      <td>Monday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-03</th>\n",
       "      <td>3307.959883</td>\n",
       "      <td>3266.729883</td>\n",
       "      <td>3273.170068</td>\n",
       "      <td>3301.670078</td>\n",
       "      <td>3955698000</td>\n",
       "      <td>Tuesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-04</th>\n",
       "      <td>3432.240068</td>\n",
       "      <td>3306.000098</td>\n",
       "      <td>3306.000098</td>\n",
       "      <td>3425.480000</td>\n",
       "      <td>4109835984</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-05</th>\n",
       "      <td>3462.600000</td>\n",
       "      <td>3170.869951</td>\n",
       "      <td>3424.909932</td>\n",
       "      <td>3282.380000</td>\n",
       "      <td>4272019008</td>\n",
       "      <td>Thursday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-06</th>\n",
       "      <td>3328.910098</td>\n",
       "      <td>3148.000059</td>\n",
       "      <td>3285.379893</td>\n",
       "      <td>3179.179980</td>\n",
       "      <td>3691766000</td>\n",
       "      <td>Friday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-07</th>\n",
       "      <td>908.590000</td>\n",
       "      <td>823.560000</td>\n",
       "      <td>903.490000</td>\n",
       "      <td>908.590000</td>\n",
       "      <td>279550016</td>\n",
       "      <td>Saturday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-08</th>\n",
       "      <td>942.720000</td>\n",
       "      <td>887.250000</td>\n",
       "      <td>908.170000</td>\n",
       "      <td>911.200000</td>\n",
       "      <td>158715008</td>\n",
       "      <td>Sunday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-09</th>\n",
       "      <td>3189.179990</td>\n",
       "      <td>3148.709902</td>\n",
       "      <td>3186.830088</td>\n",
       "      <td>3171.729902</td>\n",
       "      <td>3359486992</td>\n",
       "      <td>Monday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-10</th>\n",
       "      <td>3194.140020</td>\n",
       "      <td>3166.330020</td>\n",
       "      <td>3172.159971</td>\n",
       "      <td>3176.579902</td>\n",
       "      <td>3754598000</td>\n",
       "      <td>Tuesday</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   high          low         open        close      volume  \\\n",
       "date                                                                         \n",
       "2017-01-01  1003.080000   958.700000   963.660000   998.330000   147775008   \n",
       "2017-01-02  1031.390000   996.700000   998.620000  1021.750000   222184992   \n",
       "2017-01-03  3307.959883  3266.729883  3273.170068  3301.670078  3955698000   \n",
       "2017-01-04  3432.240068  3306.000098  3306.000098  3425.480000  4109835984   \n",
       "2017-01-05  3462.600000  3170.869951  3424.909932  3282.380000  4272019008   \n",
       "2017-01-06  3328.910098  3148.000059  3285.379893  3179.179980  3691766000   \n",
       "2017-01-07   908.590000   823.560000   903.490000   908.590000   279550016   \n",
       "2017-01-08   942.720000   887.250000   908.170000   911.200000   158715008   \n",
       "2017-01-09  3189.179990  3148.709902  3186.830088  3171.729902  3359486992   \n",
       "2017-01-10  3194.140020  3166.330020  3172.159971  3176.579902  3754598000   \n",
       "\n",
       "           day_of_week  \n",
       "date                    \n",
       "2017-01-01      Sunday  \n",
       "2017-01-02      Monday  \n",
       "2017-01-03     Tuesday  \n",
       "2017-01-04   Wednesday  \n",
       "2017-01-05    Thursday  \n",
       "2017-01-06      Friday  \n",
       "2017-01-07    Saturday  \n",
       "2017-01-08      Sunday  \n",
       "2017-01-09      Monday  \n",
       "2017-01-10     Tuesday  "
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bitcoin = pd.read_csv(\n",
    "    'data/bitcoin.csv', index_col='date', parse_dates=True\n",
    ").drop(columns=['market_cap'])\n",
    "\n",
    "# every day's closing price = S&P 500 close + Bitcoin close (same for other metrics)\n",
    "portfolio = pd.concat(\n",
    "    [sp, bitcoin], sort=False\n",
    ").groupby(pd.Grouper(freq='D')).sum()\n",
    "\n",
    "portfolio.head(10).assign(\n",
    "    day_of_week=lambda x: x.index.day_name()\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It may not be immediately obvious what is wrong with the previous data, but with a visualization we can easily see the cyclical pattern of drops on the days the stock market is closed. (Don't worry about the plotting code too much, we will cover it in depth in chapters [5](https://github.com/stefmolin/Hands-On-Data-Analysis-with-Pandas/tree/master/ch_05) and [6](https://github.com/stefmolin/Hands-On-Data-Analysis-with-Pandas/tree/master/ch_06)).\n",
    "\n",
    "We will need to import `matplotlib` now:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt # we use this module for plotting"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can see why we need to reindex:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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iIjkUbAoIiIiIiIieRQsioiIiIiISB4FiyIiIiIiIpJHwaKIiIiIiIjkUbAoIiJSBmb2cTP7wDz3n2NmmyvZJxERkUIoWBQREamOcwAFiyIiUrO0zqKIiEiJmNlHgQuBZ4BdwF3AAHApkAQeA94CHA38NLxvAHhD2MSXgeXAMPDX7v5IJfsvIiKSS8GiiIhICZjZccA3gROBRuBu4KvAVe6+O9znH4Hn3f1fzeybwE/d/T/C+24F3uHu28zsROAz7n565Z+JiIhIoLHaHRAREVkgXgZc5+7DAGZ2fbj9iDBI7ATagZtmPtDM2oGTgR+aWbS5uew9FhERmYeCRRERkdKZLV3nm8A57n6fmV0MvHKWfRqAfnc/unxdExERKYwK3IiIiJTGfwHnmlmrmS0B/jzcvgR41syagDfn7L8nvA93HwSeMLPzACxwVOW6LiIikk9zFkVEREokp8DNU8B24PfAEPDBcNsDwBJ3v9jMTgG+DowBbwQmga8Aq4Am4Pvu/smKPwkREZGQgkURERERERHJozRUERERERERyaNgUURERERERPIoWBQREREREZE8ChZFREREREQkj4JFERERERERyaNgUURERERERPIoWBQREREREZE8/x8mROq34RKkbwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "portfolio['2017-Q4':'2018-Q2'].plot(\n",
    "    y='close', figsize=(15, 5), legend=False,\n",
    "    title='Bitcoin + S&P 500 value without accounting for different indices'\n",
    ") # plot the closing price from Q4 2017 through Q2 2018\n",
    "plt.ylabel('price ($)') # label the y-axis\n",
    "plt.show() # show the plot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We need to align the index of the S&P 500 to match bitcoin in order to fix this. We will use the `reindex()` method, but by default we get `NaN` for the values that we don't have data for:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>open</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>day_of_week</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2017-01-01</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Sunday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-02</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Monday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-03</th>\n",
       "      <td>2263.879883</td>\n",
       "      <td>2245.129883</td>\n",
       "      <td>2251.570068</td>\n",
       "      <td>2257.830078</td>\n",
       "      <td>3.770530e+09</td>\n",
       "      <td>Tuesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-04</th>\n",
       "      <td>2272.820068</td>\n",
       "      <td>2261.600098</td>\n",
       "      <td>2261.600098</td>\n",
       "      <td>2270.750000</td>\n",
       "      <td>3.764890e+09</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-05</th>\n",
       "      <td>2271.500000</td>\n",
       "      <td>2260.449951</td>\n",
       "      <td>2268.179932</td>\n",
       "      <td>2269.000000</td>\n",
       "      <td>3.761820e+09</td>\n",
       "      <td>Thursday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-06</th>\n",
       "      <td>2282.100098</td>\n",
       "      <td>2264.060059</td>\n",
       "      <td>2271.139893</td>\n",
       "      <td>2276.979980</td>\n",
       "      <td>3.339890e+09</td>\n",
       "      <td>Friday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-07</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Saturday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-08</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Sunday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-09</th>\n",
       "      <td>2275.489990</td>\n",
       "      <td>2268.899902</td>\n",
       "      <td>2273.590088</td>\n",
       "      <td>2268.899902</td>\n",
       "      <td>3.217610e+09</td>\n",
       "      <td>Monday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-10</th>\n",
       "      <td>2279.270020</td>\n",
       "      <td>2265.270020</td>\n",
       "      <td>2269.719971</td>\n",
       "      <td>2268.899902</td>\n",
       "      <td>3.638790e+09</td>\n",
       "      <td>Tuesday</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   high          low         open        close        volume  \\\n",
       "date                                                                           \n",
       "2017-01-01          NaN          NaN          NaN          NaN           NaN   \n",
       "2017-01-02          NaN          NaN          NaN          NaN           NaN   \n",
       "2017-01-03  2263.879883  2245.129883  2251.570068  2257.830078  3.770530e+09   \n",
       "2017-01-04  2272.820068  2261.600098  2261.600098  2270.750000  3.764890e+09   \n",
       "2017-01-05  2271.500000  2260.449951  2268.179932  2269.000000  3.761820e+09   \n",
       "2017-01-06  2282.100098  2264.060059  2271.139893  2276.979980  3.339890e+09   \n",
       "2017-01-07          NaN          NaN          NaN          NaN           NaN   \n",
       "2017-01-08          NaN          NaN          NaN          NaN           NaN   \n",
       "2017-01-09  2275.489990  2268.899902  2273.590088  2268.899902  3.217610e+09   \n",
       "2017-01-10  2279.270020  2265.270020  2269.719971  2268.899902  3.638790e+09   \n",
       "\n",
       "           day_of_week  \n",
       "date                    \n",
       "2017-01-01      Sunday  \n",
       "2017-01-02      Monday  \n",
       "2017-01-03     Tuesday  \n",
       "2017-01-04   Wednesday  \n",
       "2017-01-05    Thursday  \n",
       "2017-01-06      Friday  \n",
       "2017-01-07    Saturday  \n",
       "2017-01-08      Sunday  \n",
       "2017-01-09      Monday  \n",
       "2017-01-10     Tuesday  "
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sp.reindex(bitcoin.index).head(10).assign(\n",
    "    day_of_week=lambda x: x.index.day_name()\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So now we have rows for every day of the year, but all the weekends and holidays have `NaN` values. To address this, we can specify how to handle missing values with the `method` argument. In this case, we want to forward fill, which will put the weekend and holiday values as the value they had for the Friday (or end of trading week) before:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>open</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>day_of_week</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2017-01-01</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Sunday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-02</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Monday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-03</th>\n",
       "      <td>2263.879883</td>\n",
       "      <td>2245.129883</td>\n",
       "      <td>2251.570068</td>\n",
       "      <td>2257.830078</td>\n",
       "      <td>3.770530e+09</td>\n",
       "      <td>Tuesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-04</th>\n",
       "      <td>2272.820068</td>\n",
       "      <td>2261.600098</td>\n",
       "      <td>2261.600098</td>\n",
       "      <td>2270.750000</td>\n",
       "      <td>3.764890e+09</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-05</th>\n",
       "      <td>2271.500000</td>\n",
       "      <td>2260.449951</td>\n",
       "      <td>2268.179932</td>\n",
       "      <td>2269.000000</td>\n",
       "      <td>3.761820e+09</td>\n",
       "      <td>Thursday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-06</th>\n",
       "      <td>2282.100098</td>\n",
       "      <td>2264.060059</td>\n",
       "      <td>2271.139893</td>\n",
       "      <td>2276.979980</td>\n",
       "      <td>3.339890e+09</td>\n",
       "      <td>Friday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-07</th>\n",
       "      <td>2282.100098</td>\n",
       "      <td>2264.060059</td>\n",
       "      <td>2271.139893</td>\n",
       "      <td>2276.979980</td>\n",
       "      <td>3.339890e+09</td>\n",
       "      <td>Saturday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-08</th>\n",
       "      <td>2282.100098</td>\n",
       "      <td>2264.060059</td>\n",
       "      <td>2271.139893</td>\n",
       "      <td>2276.979980</td>\n",
       "      <td>3.339890e+09</td>\n",
       "      <td>Sunday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-09</th>\n",
       "      <td>2275.489990</td>\n",
       "      <td>2268.899902</td>\n",
       "      <td>2273.590088</td>\n",
       "      <td>2268.899902</td>\n",
       "      <td>3.217610e+09</td>\n",
       "      <td>Monday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-10</th>\n",
       "      <td>2279.270020</td>\n",
       "      <td>2265.270020</td>\n",
       "      <td>2269.719971</td>\n",
       "      <td>2268.899902</td>\n",
       "      <td>3.638790e+09</td>\n",
       "      <td>Tuesday</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   high          low         open        close        volume  \\\n",
       "date                                                                           \n",
       "2017-01-01          NaN          NaN          NaN          NaN           NaN   \n",
       "2017-01-02          NaN          NaN          NaN          NaN           NaN   \n",
       "2017-01-03  2263.879883  2245.129883  2251.570068  2257.830078  3.770530e+09   \n",
       "2017-01-04  2272.820068  2261.600098  2261.600098  2270.750000  3.764890e+09   \n",
       "2017-01-05  2271.500000  2260.449951  2268.179932  2269.000000  3.761820e+09   \n",
       "2017-01-06  2282.100098  2264.060059  2271.139893  2276.979980  3.339890e+09   \n",
       "2017-01-07  2282.100098  2264.060059  2271.139893  2276.979980  3.339890e+09   \n",
       "2017-01-08  2282.100098  2264.060059  2271.139893  2276.979980  3.339890e+09   \n",
       "2017-01-09  2275.489990  2268.899902  2273.590088  2268.899902  3.217610e+09   \n",
       "2017-01-10  2279.270020  2265.270020  2269.719971  2268.899902  3.638790e+09   \n",
       "\n",
       "           day_of_week  \n",
       "date                    \n",
       "2017-01-01      Sunday  \n",
       "2017-01-02      Monday  \n",
       "2017-01-03     Tuesday  \n",
       "2017-01-04   Wednesday  \n",
       "2017-01-05    Thursday  \n",
       "2017-01-06      Friday  \n",
       "2017-01-07    Saturday  \n",
       "2017-01-08      Sunday  \n",
       "2017-01-09      Monday  \n",
       "2017-01-10     Tuesday  "
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sp.reindex(\n",
    "    bitcoin.index, method='ffill'\n",
    ").head(10).assign(\n",
    "    day_of_week=lambda x: x.index.day_name()\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This isn't perfect though. We probably want 0 for the volume traded and to put the closing price for the open, high, low, and close on the days the market is closed:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>open</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>day_of_week</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2017-01-01</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>Sunday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-02</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>Monday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-03</th>\n",
       "      <td>2263.879883</td>\n",
       "      <td>2245.129883</td>\n",
       "      <td>2251.570068</td>\n",
       "      <td>2257.830078</td>\n",
       "      <td>3.770530e+09</td>\n",
       "      <td>Tuesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-04</th>\n",
       "      <td>2272.820068</td>\n",
       "      <td>2261.600098</td>\n",
       "      <td>2261.600098</td>\n",
       "      <td>2270.750000</td>\n",
       "      <td>3.764890e+09</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-05</th>\n",
       "      <td>2271.500000</td>\n",
       "      <td>2260.449951</td>\n",
       "      <td>2268.179932</td>\n",
       "      <td>2269.000000</td>\n",
       "      <td>3.761820e+09</td>\n",
       "      <td>Thursday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-06</th>\n",
       "      <td>2282.100098</td>\n",
       "      <td>2264.060059</td>\n",
       "      <td>2271.139893</td>\n",
       "      <td>2276.979980</td>\n",
       "      <td>3.339890e+09</td>\n",
       "      <td>Friday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-07</th>\n",
       "      <td>2276.979980</td>\n",
       "      <td>2276.979980</td>\n",
       "      <td>2276.979980</td>\n",
       "      <td>2276.979980</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>Saturday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-08</th>\n",
       "      <td>2276.979980</td>\n",
       "      <td>2276.979980</td>\n",
       "      <td>2276.979980</td>\n",
       "      <td>2276.979980</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>Sunday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-09</th>\n",
       "      <td>2275.489990</td>\n",
       "      <td>2268.899902</td>\n",
       "      <td>2273.590088</td>\n",
       "      <td>2268.899902</td>\n",
       "      <td>3.217610e+09</td>\n",
       "      <td>Monday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-10</th>\n",
       "      <td>2279.270020</td>\n",
       "      <td>2265.270020</td>\n",
       "      <td>2269.719971</td>\n",
       "      <td>2268.899902</td>\n",
       "      <td>3.638790e+09</td>\n",
       "      <td>Tuesday</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   high          low         open        close        volume  \\\n",
       "date                                                                           \n",
       "2017-01-01          NaN          NaN          NaN          NaN  0.000000e+00   \n",
       "2017-01-02          NaN          NaN          NaN          NaN  0.000000e+00   \n",
       "2017-01-03  2263.879883  2245.129883  2251.570068  2257.830078  3.770530e+09   \n",
       "2017-01-04  2272.820068  2261.600098  2261.600098  2270.750000  3.764890e+09   \n",
       "2017-01-05  2271.500000  2260.449951  2268.179932  2269.000000  3.761820e+09   \n",
       "2017-01-06  2282.100098  2264.060059  2271.139893  2276.979980  3.339890e+09   \n",
       "2017-01-07  2276.979980  2276.979980  2276.979980  2276.979980  0.000000e+00   \n",
       "2017-01-08  2276.979980  2276.979980  2276.979980  2276.979980  0.000000e+00   \n",
       "2017-01-09  2275.489990  2268.899902  2273.590088  2268.899902  3.217610e+09   \n",
       "2017-01-10  2279.270020  2265.270020  2269.719971  2268.899902  3.638790e+09   \n",
       "\n",
       "           day_of_week  \n",
       "date                    \n",
       "2017-01-01      Sunday  \n",
       "2017-01-02      Monday  \n",
       "2017-01-03     Tuesday  \n",
       "2017-01-04   Wednesday  \n",
       "2017-01-05    Thursday  \n",
       "2017-01-06      Friday  \n",
       "2017-01-07    Saturday  \n",
       "2017-01-08      Sunday  \n",
       "2017-01-09      Monday  \n",
       "2017-01-10     Tuesday  "
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "sp_reindexed = sp.reindex(\n",
    "    bitcoin.index\n",
    ").assign(\n",
    "    volume=lambda x: x.volume.fillna(0), # put 0 when market is closed\n",
    "    close=lambda x: x.close.fillna(method='ffill'), # carry this forward\n",
    "    # take the closing price if these aren't available\n",
    "    open=lambda x: np.where(x.open.isnull(), x.close, x.open),\n",
    "    high=lambda x: np.where(x.high.isnull(), x.close, x.high),\n",
    "    low=lambda x: np.where(x.low.isnull(), x.close, x.low)\n",
    ")\n",
    "sp_reindexed.head(10).assign(\n",
    "    day_of_week=lambda x: x.index.day_name()\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If we create visualization comparing the reindexed data to the first attempt, we see how reindexing helped maintain the asset value when the market was closed:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# every day's closing price = S&P 500 close adjusted for market closure + Bitcoin close (same for other metrics)\n",
    "fixed_portfolio = pd.concat([sp_reindexed, bitcoin], sort=False).groupby(pd.Grouper(freq='D')).sum()\n",
    "\n",
    "ax = fixed_portfolio['2017-Q4':'2018-Q2'].plot(\n",
    "    y='close', label='reindexed portfolio of S&P 500 + Bitcoin', figsize=(15, 5), linewidth=2, \n",
    "    title='Reindexed portfolio vs. portfolio with mismatches indices'\n",
    ") # plot the reindexed portfolio's closing price from Q4 2017 through Q2 2018\n",
    "\n",
    "portfolio['2017-Q4':'2018-Q2'].plot(\n",
    "    y='close', ax=ax, linestyle='--', label='portfolio of S&P 500 + Bitcoin w/o reindexing'\n",
    ").set_ylabel('price ($)') # add line for original portfolio for comparison and label y-axis\n",
    "\n",
    "plt.show() # show the plot"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
